A one-time programmable memory (OTPM) is programmed with a programming operation followed by a verification test. The robustness of the programmed data state is determined by performing a read-margin test after programming. The margin test is used to predict the amount of excess read-signal that exists to compensate for sensing noise, leakage, and other signal detractors. In the margin test, a predetermined sensing imbalance must be overcome to read the data as correct. If the data does not pass the margin test, additional programming operations are then performed.
An array of OTPM data cells are connected to differential current-sense amplifiers via true and complement bit line pairs. Stored data is sensed by sense amplifiers which resolve the differential cell currents into logical ‘1’ or logical ‘0’ data. Further, an OTPM data-cell may consist of a pair of field effect transistors (FETs) in which ‘1’ and ‘0’ data-states are stored by programming one of the FETs threshold voltages higher or lower than the other, resulting in a positive or negative difference in currents within the FET pair. Thus, a differential data-current is established which can be sensed by a current sensing sense amplifier. However, multiple programming in an OTPM can cause damage to an oxide of a FET.